package solutions.ferpa.ztest.ent;

import java.sql.*;
import java.util.ArrayList;
import br.com.telescope.adsrt.dom.*;
import br.com.telescope.adsrt.lib.*;
import br.com.telescope.t2.exception.Severity;

/**
 * API de persistência de dados da entidade VALOR_VARIAVEL_ENSAIO
 * @author Gerado pelo Telescope
 */
public class EntValorVariavelEnsaio extends Entity {
    
    public final static String ENTITY_NAME = "ZTEST.VALOR_VARIAVEL_ENSAIO";
    public final static String TABLE_NAME = "VALOR_VARIAVEL_ENSAIO";
    
    // <editor-fold defaultstate="collapsed" desc="Contrutores e inicializacao">
    /**
     * Construtores
     */
    public EntValorVariavelEnsaio() {
        super();
        initialize();
    }
    
    public EntValorVariavelEnsaio(BaseRuntime ctx) {
        super();
        initialize(ctx);
    }
    
    @Override
    public String getPrimaryKeyColumn() {
        return "ID";
    }
    
    @Override
    public void initialize(BaseRuntime ctx) {
        super.initialize(ctx);
        initialize();
    }
    
    public void initialize() {
        aId = new DomId(this,"ID", "Id"); 
        aId.setRequired(true);
        oId = new DomId();
        aVariavelAplicativoId = new DomId(this,"VARIAVEL_APLICATIVO_ID", "Variável do aplicativo"); 
        aVariavelAplicativoId.setRequired(true);
        oVariavelAplicativoId = new DomId();
        aHidrometroEnsaioId = new DomId(this,"HIDROMETRO_ENSAIO_ID", "Hidrômetro do ensaio"); 
        oHidrometroEnsaioId = new DomId();
        aEnsaioBancadaId = new DomId(this,"ENSAIO_BANCADA_ID", "Ensaio da bancada"); 
        aEnsaioBancadaId.setRequired(true);
        oEnsaioBancadaId = new DomId();
        aDataHoraRegistro = new DomDateTime(this,"DATA_HORA_REGISTRO", "Data e hora do registro"); 
        aDataHoraRegistro.setRequired(true);
        aDataHoraRegistro.setDefaultValue("[SYSDATE]");
        oDataHoraRegistro = new DomDateTime();
        aValorLido = new DomText(this,"VALOR_LIDO", "Valor lido (ensaio)"); 
        aValorLido.setRequired(true);
        oValorLido = new DomText();
        aNumeroIteracao = new DomInteger(this,"NUMERO_ITERACAO", "Número da iteração"); 
        aNumeroIteracao.setDefaultValue("1");
        oNumeroIteracao = new DomInteger();
        aPontoPlanoExecucaoId = new DomId(this,"PONTO_PLANO_EXECUCAO_ID", "Ponto do plano de execução"); 
        oPontoPlanoExecucaoId = new DomId();
        aProcessoAplicativoId = new DomId(this,"PROCESSO_APLICATIVO_ID", "Processo do aplicativo"); 
        oProcessoAplicativoId = new DomId();
        aValorAjustado = new DomText(this,"VALOR_AJUSTADO", "Valor ajustado"); 
        oValorAjustado = new DomText();
        aResponsavelAjusteId = new DomId(this,"RESPONSAVEL_AJUSTE_ID", "Responsável pelo ajuste"); 
        oResponsavelAjusteId = new DomId();
        aDataHoraAjuste = new DomDateTime(this,"DATA_HORA_AJUSTE", "Data e hora do ajuste"); 
        oDataHoraAjuste = new DomDateTime();
        ressetModified();
    }
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="Atributos da entidade">
    
    // Id
    private DomId aId;
    private DomId oId;
    
    // Variável do aplicativo
    private DomId aVariavelAplicativoId;
    private DomId oVariavelAplicativoId;
    
    // Hidrômetro do ensaio
    private DomId aHidrometroEnsaioId;
    private DomId oHidrometroEnsaioId;
    
    // Ensaio da bancada
    private DomId aEnsaioBancadaId;
    private DomId oEnsaioBancadaId;
    
    // Data e hora do registro
    private DomDateTime aDataHoraRegistro;
    private DomDateTime oDataHoraRegistro;
    
    // Valor lido (ensaio)
    private DomText aValorLido;
    private DomText oValorLido;
    
    // Número da iteração
    private DomInteger aNumeroIteracao;
    private DomInteger oNumeroIteracao;
    
    // Ponto do plano de execução
    private DomId aPontoPlanoExecucaoId;
    private DomId oPontoPlanoExecucaoId;
    
    // Processo do aplicativo
    private DomId aProcessoAplicativoId;
    private DomId oProcessoAplicativoId;
    
    // Valor ajustado
    private DomText aValorAjustado;
    private DomText oValorAjustado;
    
    // Responsável pelo ajuste
    private DomId aResponsavelAjusteId;
    private DomId oResponsavelAjusteId;
    
    // Data e hora do ajuste
    private DomDateTime aDataHoraAjuste;
    private DomDateTime oDataHoraAjuste;
    
    // <editor-fold defaultstate="collapsed" desc="Atributo ID">
    
    public EntValorVariavelEnsaio id(Long value) {
        setId(value);
        return this;
    }
    
    public void setId(DomId value) {
        if (value == null || value.isNull()) {
            nullifyId();
        } else {
            aId.setValue(value.getValue());
            if (aId.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setId(String value) {
        if (value == null) {
            nullifyId();
        } else {
            aId.setValue(value);
            if (aId.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setId(Long value) {
        aId.setValue(value);
        if (aId.isModified()) {
            setModified(true);
        }
    }
    
    public void setId(Object value) {
        aId.setValue(value);
        if (aId.isModified()) {
            setModified(true);
        }
    }
    
    public void nullifyId() {
        if (!aId.isNull()) {
            aId.setNull(true);
            setModified(true);
        }
    }
    
    public DomId getId() {
        return aId;
    }
    
    public DomId oldId() {
        return oId;
    }
    
    public Long valueOfId() {
        return aId.getValue();
    }
    
    public boolean isIdModified() {
        return aId.isModified();
    }
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="Atributo VARIAVEL_APLICATIVO_ID">
    
    public EntValorVariavelEnsaio variavelAplicativoId(Long value) {
        setVariavelAplicativoId(value);
        return this;
    }
    
    public void setVariavelAplicativoId(DomId value) {
        if (value == null || value.isNull()) {
            nullifyVariavelAplicativoId();
        } else {
            aVariavelAplicativoId.setValue(value.getValue());
            if (aVariavelAplicativoId.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setVariavelAplicativoId(String value) {
        if (value == null) {
            nullifyVariavelAplicativoId();
        } else {
            aVariavelAplicativoId.setValue(value);
            if (aVariavelAplicativoId.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setVariavelAplicativoId(Long value) {
        aVariavelAplicativoId.setValue(value);
        if (aVariavelAplicativoId.isModified()) {
            setModified(true);
        }
    }
    
    public void setVariavelAplicativoId(Object value) {
        aVariavelAplicativoId.setValue(value);
        if (aVariavelAplicativoId.isModified()) {
            setModified(true);
        }
    }
    
    public void nullifyVariavelAplicativoId() {
        if (!aVariavelAplicativoId.isNull()) {
            aVariavelAplicativoId.setNull(true);
            setModified(true);
        }
    }
    
    public DomId getVariavelAplicativoId() {
        return aVariavelAplicativoId;
    }
    
    public DomId oldVariavelAplicativoId() {
        return oVariavelAplicativoId;
    }
    
    public Long valueOfVariavelAplicativoId() {
        return aVariavelAplicativoId.getValue();
    }
    
    public boolean isVariavelAplicativoIdModified() {
        return aVariavelAplicativoId.isModified();
    }
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="Atributo HIDROMETRO_ENSAIO_ID">
    
    public EntValorVariavelEnsaio hidrometroEnsaioId(Long value) {
        setHidrometroEnsaioId(value);
        return this;
    }
    
    public void setHidrometroEnsaioId(DomId value) {
        if (value == null || value.isNull()) {
            nullifyHidrometroEnsaioId();
        } else {
            aHidrometroEnsaioId.setValue(value.getValue());
            if (aHidrometroEnsaioId.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setHidrometroEnsaioId(String value) {
        if (value == null) {
            nullifyHidrometroEnsaioId();
        } else {
            aHidrometroEnsaioId.setValue(value);
            if (aHidrometroEnsaioId.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setHidrometroEnsaioId(Long value) {
        aHidrometroEnsaioId.setValue(value);
        if (aHidrometroEnsaioId.isModified()) {
            setModified(true);
        }
    }
    
    public void setHidrometroEnsaioId(Object value) {
        aHidrometroEnsaioId.setValue(value);
        if (aHidrometroEnsaioId.isModified()) {
            setModified(true);
        }
    }
    
    public void nullifyHidrometroEnsaioId() {
        if (!aHidrometroEnsaioId.isNull()) {
            aHidrometroEnsaioId.setNull(true);
            setModified(true);
        }
    }
    
    public DomId getHidrometroEnsaioId() {
        return aHidrometroEnsaioId;
    }
    
    public DomId oldHidrometroEnsaioId() {
        return oHidrometroEnsaioId;
    }
    
    public Long valueOfHidrometroEnsaioId() {
        return aHidrometroEnsaioId.getValue();
    }
    
    public boolean isHidrometroEnsaioIdModified() {
        return aHidrometroEnsaioId.isModified();
    }
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="Atributo ENSAIO_BANCADA_ID">
    
    public EntValorVariavelEnsaio ensaioBancadaId(Long value) {
        setEnsaioBancadaId(value);
        return this;
    }
    
    public void setEnsaioBancadaId(DomId value) {
        if (value == null || value.isNull()) {
            nullifyEnsaioBancadaId();
        } else {
            aEnsaioBancadaId.setValue(value.getValue());
            if (aEnsaioBancadaId.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setEnsaioBancadaId(String value) {
        if (value == null) {
            nullifyEnsaioBancadaId();
        } else {
            aEnsaioBancadaId.setValue(value);
            if (aEnsaioBancadaId.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setEnsaioBancadaId(Long value) {
        aEnsaioBancadaId.setValue(value);
        if (aEnsaioBancadaId.isModified()) {
            setModified(true);
        }
    }
    
    public void setEnsaioBancadaId(Object value) {
        aEnsaioBancadaId.setValue(value);
        if (aEnsaioBancadaId.isModified()) {
            setModified(true);
        }
    }
    
    public void nullifyEnsaioBancadaId() {
        if (!aEnsaioBancadaId.isNull()) {
            aEnsaioBancadaId.setNull(true);
            setModified(true);
        }
    }
    
    public DomId getEnsaioBancadaId() {
        return aEnsaioBancadaId;
    }
    
    public DomId oldEnsaioBancadaId() {
        return oEnsaioBancadaId;
    }
    
    public Long valueOfEnsaioBancadaId() {
        return aEnsaioBancadaId.getValue();
    }
    
    public boolean isEnsaioBancadaIdModified() {
        return aEnsaioBancadaId.isModified();
    }
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="Atributo DATA_HORA_REGISTRO">
    
    public EntValorVariavelEnsaio dataHoraRegistro(java.sql.Timestamp value) {
        setDataHoraRegistro(value);
        return this;
    }
    
    public void setDataHoraRegistro(DomDateTime value) {
        if (value == null || value.isNull()) {
            nullifyDataHoraRegistro();
        } else {
            aDataHoraRegistro.setValue(value.getValue());
            if (aDataHoraRegistro.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setDataHoraRegistro(String value) {
        if (value == null) {
            nullifyDataHoraRegistro();
        } else {
            aDataHoraRegistro.setValue(value);
            if (aDataHoraRegistro.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setDataHoraRegistro(java.sql.Timestamp value) {
        aDataHoraRegistro.setValue(value);
        if (aDataHoraRegistro.isModified()) {
            setModified(true);
        }
    }
    
    public void setDataHoraRegistro(Object value) {
        aDataHoraRegistro.setValue(value);
        if (aDataHoraRegistro.isModified()) {
            setModified(true);
        }
    }
    
    public void nullifyDataHoraRegistro() {
        if (!aDataHoraRegistro.isNull()) {
            aDataHoraRegistro.setNull(true);
            setModified(true);
        }
    }
    
    public DomDateTime getDataHoraRegistro() {
        return aDataHoraRegistro;
    }
    
    public DomDateTime oldDataHoraRegistro() {
        return oDataHoraRegistro;
    }
    
    public java.sql.Timestamp valueOfDataHoraRegistro() {
        return aDataHoraRegistro.getValue();
    }
    
    public boolean isDataHoraRegistroModified() {
        return aDataHoraRegistro.isModified();
    }
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="Atributo VALOR_LIDO">
    
    public EntValorVariavelEnsaio valorLido(String value) {
        setValorLido(value);
        return this;
    }
    
    public void setValorLido(DomText value) {
        if (value == null || value.isNull()) {
            nullifyValorLido();
        } else {
            aValorLido.setValue(value.getValue());
            if (aValorLido.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setValorLido(String value) {
        if (value == null) {
            nullifyValorLido();
        } else {
            aValorLido.setValue(value);
            if (aValorLido.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setValorLido(Object value) {
        aValorLido.setValue(value);
        if (aValorLido.isModified()) {
            setModified(true);
        }
    }
    
    public void nullifyValorLido() {
        if (!aValorLido.isNull()) {
            aValorLido.setNull(true);
            setModified(true);
        }
    }
    
    public DomText getValorLido() {
        return aValorLido;
    }
    
    public DomText oldValorLido() {
        return oValorLido;
    }
    
    public String valueOfValorLido() {
        return aValorLido.getValue();
    }
    
    public boolean isValorLidoModified() {
        return aValorLido.isModified();
    }
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="Atributo NUMERO_ITERACAO">
    
    public EntValorVariavelEnsaio numeroIteracao(Integer value) {
        setNumeroIteracao(value);
        return this;
    }
    
    public void setNumeroIteracao(DomInteger value) {
        if (value == null || value.isNull()) {
            nullifyNumeroIteracao();
        } else {
            aNumeroIteracao.setValue(value.getValue());
            if (aNumeroIteracao.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setNumeroIteracao(String value) {
        if (value == null) {
            nullifyNumeroIteracao();
        } else {
            aNumeroIteracao.setValue(value);
            if (aNumeroIteracao.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setNumeroIteracao(Integer value) {
        aNumeroIteracao.setValue(value);
        if (aNumeroIteracao.isModified()) {
            setModified(true);
        }
    }
    
    public void setNumeroIteracao(Object value) {
        aNumeroIteracao.setValue(value);
        if (aNumeroIteracao.isModified()) {
            setModified(true);
        }
    }
    
    public void nullifyNumeroIteracao() {
        if (!aNumeroIteracao.isNull()) {
            aNumeroIteracao.setNull(true);
            setModified(true);
        }
    }
    
    public DomInteger getNumeroIteracao() {
        return aNumeroIteracao;
    }
    
    public DomInteger oldNumeroIteracao() {
        return oNumeroIteracao;
    }
    
    public Integer valueOfNumeroIteracao() {
        return aNumeroIteracao.getValue();
    }
    
    public boolean isNumeroIteracaoModified() {
        return aNumeroIteracao.isModified();
    }
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="Atributo PONTO_PLANO_EXECUCAO_ID">
    
    public EntValorVariavelEnsaio pontoPlanoExecucaoId(Long value) {
        setPontoPlanoExecucaoId(value);
        return this;
    }
    
    public void setPontoPlanoExecucaoId(DomId value) {
        if (value == null || value.isNull()) {
            nullifyPontoPlanoExecucaoId();
        } else {
            aPontoPlanoExecucaoId.setValue(value.getValue());
            if (aPontoPlanoExecucaoId.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setPontoPlanoExecucaoId(String value) {
        if (value == null) {
            nullifyPontoPlanoExecucaoId();
        } else {
            aPontoPlanoExecucaoId.setValue(value);
            if (aPontoPlanoExecucaoId.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setPontoPlanoExecucaoId(Long value) {
        aPontoPlanoExecucaoId.setValue(value);
        if (aPontoPlanoExecucaoId.isModified()) {
            setModified(true);
        }
    }
    
    public void setPontoPlanoExecucaoId(Object value) {
        aPontoPlanoExecucaoId.setValue(value);
        if (aPontoPlanoExecucaoId.isModified()) {
            setModified(true);
        }
    }
    
    public void nullifyPontoPlanoExecucaoId() {
        if (!aPontoPlanoExecucaoId.isNull()) {
            aPontoPlanoExecucaoId.setNull(true);
            setModified(true);
        }
    }
    
    public DomId getPontoPlanoExecucaoId() {
        return aPontoPlanoExecucaoId;
    }
    
    public DomId oldPontoPlanoExecucaoId() {
        return oPontoPlanoExecucaoId;
    }
    
    public Long valueOfPontoPlanoExecucaoId() {
        return aPontoPlanoExecucaoId.getValue();
    }
    
    public boolean isPontoPlanoExecucaoIdModified() {
        return aPontoPlanoExecucaoId.isModified();
    }
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="Atributo PROCESSO_APLICATIVO_ID">
    
    public EntValorVariavelEnsaio processoAplicativoId(Long value) {
        setProcessoAplicativoId(value);
        return this;
    }
    
    public void setProcessoAplicativoId(DomId value) {
        if (value == null || value.isNull()) {
            nullifyProcessoAplicativoId();
        } else {
            aProcessoAplicativoId.setValue(value.getValue());
            if (aProcessoAplicativoId.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setProcessoAplicativoId(String value) {
        if (value == null) {
            nullifyProcessoAplicativoId();
        } else {
            aProcessoAplicativoId.setValue(value);
            if (aProcessoAplicativoId.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setProcessoAplicativoId(Long value) {
        aProcessoAplicativoId.setValue(value);
        if (aProcessoAplicativoId.isModified()) {
            setModified(true);
        }
    }
    
    public void setProcessoAplicativoId(Object value) {
        aProcessoAplicativoId.setValue(value);
        if (aProcessoAplicativoId.isModified()) {
            setModified(true);
        }
    }
    
    public void nullifyProcessoAplicativoId() {
        if (!aProcessoAplicativoId.isNull()) {
            aProcessoAplicativoId.setNull(true);
            setModified(true);
        }
    }
    
    public DomId getProcessoAplicativoId() {
        return aProcessoAplicativoId;
    }
    
    public DomId oldProcessoAplicativoId() {
        return oProcessoAplicativoId;
    }
    
    public Long valueOfProcessoAplicativoId() {
        return aProcessoAplicativoId.getValue();
    }
    
    public boolean isProcessoAplicativoIdModified() {
        return aProcessoAplicativoId.isModified();
    }
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="Atributo VALOR_AJUSTADO">
    
    public EntValorVariavelEnsaio valorAjustado(String value) {
        setValorAjustado(value);
        return this;
    }
    
    public void setValorAjustado(DomText value) {
        if (value == null || value.isNull()) {
            nullifyValorAjustado();
        } else {
            aValorAjustado.setValue(value.getValue());
            if (aValorAjustado.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setValorAjustado(String value) {
        if (value == null) {
            nullifyValorAjustado();
        } else {
            aValorAjustado.setValue(value);
            if (aValorAjustado.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setValorAjustado(Object value) {
        aValorAjustado.setValue(value);
        if (aValorAjustado.isModified()) {
            setModified(true);
        }
    }
    
    public void nullifyValorAjustado() {
        if (!aValorAjustado.isNull()) {
            aValorAjustado.setNull(true);
            setModified(true);
        }
    }
    
    public DomText getValorAjustado() {
        return aValorAjustado;
    }
    
    public DomText oldValorAjustado() {
        return oValorAjustado;
    }
    
    public String valueOfValorAjustado() {
        return aValorAjustado.getValue();
    }
    
    public boolean isValorAjustadoModified() {
        return aValorAjustado.isModified();
    }
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="Atributo RESPONSAVEL_AJUSTE_ID">
    
    public EntValorVariavelEnsaio responsavelAjusteId(Long value) {
        setResponsavelAjusteId(value);
        return this;
    }
    
    public void setResponsavelAjusteId(DomId value) {
        if (value == null || value.isNull()) {
            nullifyResponsavelAjusteId();
        } else {
            aResponsavelAjusteId.setValue(value.getValue());
            if (aResponsavelAjusteId.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setResponsavelAjusteId(String value) {
        if (value == null) {
            nullifyResponsavelAjusteId();
        } else {
            aResponsavelAjusteId.setValue(value);
            if (aResponsavelAjusteId.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setResponsavelAjusteId(Long value) {
        aResponsavelAjusteId.setValue(value);
        if (aResponsavelAjusteId.isModified()) {
            setModified(true);
        }
    }
    
    public void setResponsavelAjusteId(Object value) {
        aResponsavelAjusteId.setValue(value);
        if (aResponsavelAjusteId.isModified()) {
            setModified(true);
        }
    }
    
    public void nullifyResponsavelAjusteId() {
        if (!aResponsavelAjusteId.isNull()) {
            aResponsavelAjusteId.setNull(true);
            setModified(true);
        }
    }
    
    public DomId getResponsavelAjusteId() {
        return aResponsavelAjusteId;
    }
    
    public DomId oldResponsavelAjusteId() {
        return oResponsavelAjusteId;
    }
    
    public Long valueOfResponsavelAjusteId() {
        return aResponsavelAjusteId.getValue();
    }
    
    public boolean isResponsavelAjusteIdModified() {
        return aResponsavelAjusteId.isModified();
    }
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="Atributo DATA_HORA_AJUSTE">
    
    public EntValorVariavelEnsaio dataHoraAjuste(java.sql.Timestamp value) {
        setDataHoraAjuste(value);
        return this;
    }
    
    public void setDataHoraAjuste(DomDateTime value) {
        if (value == null || value.isNull()) {
            nullifyDataHoraAjuste();
        } else {
            aDataHoraAjuste.setValue(value.getValue());
            if (aDataHoraAjuste.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setDataHoraAjuste(String value) {
        if (value == null) {
            nullifyDataHoraAjuste();
        } else {
            aDataHoraAjuste.setValue(value);
            if (aDataHoraAjuste.isModified()) {
                setModified(true);
            }
        }
    }
    
    public void setDataHoraAjuste(java.sql.Timestamp value) {
        aDataHoraAjuste.setValue(value);
        if (aDataHoraAjuste.isModified()) {
            setModified(true);
        }
    }
    
    public void setDataHoraAjuste(Object value) {
        aDataHoraAjuste.setValue(value);
        if (aDataHoraAjuste.isModified()) {
            setModified(true);
        }
    }
    
    public void nullifyDataHoraAjuste() {
        if (!aDataHoraAjuste.isNull()) {
            aDataHoraAjuste.setNull(true);
            setModified(true);
        }
    }
    
    public DomDateTime getDataHoraAjuste() {
        return aDataHoraAjuste;
    }
    
    public DomDateTime oldDataHoraAjuste() {
        return oDataHoraAjuste;
    }
    
    public java.sql.Timestamp valueOfDataHoraAjuste() {
        return aDataHoraAjuste.getValue();
    }
    
    public boolean isDataHoraAjusteModified() {
        return aDataHoraAjuste.isModified();
    }
    // </editor-fold>
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="getErrors">
    /**
     * Traduz um erro recebido do banco de dados para um AdsException
     */
    @Override
    public AdsException getErrors(String errorMsg, int transaction) {
        AdsException e;
        String msg = errorMsg.toUpperCase();
        
        if (transaction == DELETE_TRANSACTION) {
            e = new AdsException("ZTEST.VALOR_VARIAVEL_ENSAIO.GET_ERRORS_UNKNOWN",
                    AdsException.UNKNOWN,
                    "Erro não esperado: " + errorMsg);
        } else {
            if (msg.indexOf("FK_VAVAEN_RESPONSAVEL_AJUSTE") >= 0) {
                e = new AdsException("ZTEST.VALOR_VARIAVEL_ENSAIO.FK_VAVAEN_RESPONSAVEL_AJUSTE", 
                        Severity.ERROR,
                        "Registro não cadastrado para RESPONSAVEL_AJUSTE! (FK_VAVAEN_RESPONSAVEL_AJUSTE)");
                return e;
            } else if (msg.indexOf("FK_VAVAEN_PROCESSO_APLICATIVO") >= 0) {
                e = new AdsException("ZTEST.VALOR_VARIAVEL_ENSAIO.FK_VAVAEN_PROCESSO_APLICATIVO", 
                        Severity.ERROR,
                        "Registro não cadastrado para PROCESSO_APLICATIVO! (FK_VAVAEN_PROCESSO_APLICATIVO)");
                return e;
            } else if (msg.indexOf("FK_VAVAEN_PONTO_PLANO_EXECUCAO") >= 0) {
                e = new AdsException("ZTEST.VALOR_VARIAVEL_ENSAIO.FK_VAVAEN_PONTO_PLANO_EXECUCAO", 
                        Severity.ERROR,
                        "Registro não cadastrado para PONTO_PLANO_EXECUCAO! (FK_VAVAEN_PONTO_PLANO_EXECUCAO)");
                return e;
            } else if (msg.indexOf("FK_VAVAEN_ENSAIO_BANCADA") >= 0) {
                e = new AdsException("ZTEST.VALOR_VARIAVEL_ENSAIO.FK_VAVAEN_ENSAIO_BANCADA", 
                        Severity.ERROR,
                        "Registro não cadastrado para ENSAIO_BANCADA! (FK_VAVAEN_ENSAIO_BANCADA)");
                return e;
            } else if (msg.indexOf("FK_VAVAEN_HIDROMETRO_ENSAIO") >= 0) {
                e = new AdsException("ZTEST.VALOR_VARIAVEL_ENSAIO.FK_VAVAEN_HIDROMETRO_ENSAIO", 
                        Severity.ERROR,
                        "Registro não cadastrado para HIDROMETRO_ENSAIO! (FK_VAVAEN_HIDROMETRO_ENSAIO)");
                return e;
            } else if (msg.indexOf("FK_VAVAEN_VARIAVEL_APLICATIVO") >= 0) {
                e = new AdsException("ZTEST.VALOR_VARIAVEL_ENSAIO.FK_VAVAEN_VARIAVEL_APLICATIVO", 
                        Severity.ERROR,
                        "Registro não cadastrado para VARIAVEL_APLICATIVO! (FK_VAVAEN_VARIAVEL_APLICATIVO)");
                return e;
            } else if (msg.indexOf("PK_VAVAEN") >= 0) {
                e = new AdsException("ZTEST.VALOR_VARIAVEL_ENSAIO.PK_VAVAEN", 
                        Severity.ERROR,
                        "ID duplicado! (PK_VAVAEN)");
                return e;
            } else {
                e = new AdsException("ZTEST.VALOR_VARIAVEL_ENSAIO.GET_ERRORS_UNKNOWN",
                        AdsException.UNKNOWN,
                        "Erro não esperado: " + errorMsg);
            }
        }
        return e;
    }
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="Entity Information">
    
    public String getEntityName() {
        return ENTITY_NAME;
    }
    
    public String getTableName() {
        return TABLE_NAME;
    }
    
    public String idSequenceName() {
        return "PK_SEQUENCE";
    }
    
    private ArrayList<Field> allAttributes;
    public ArrayList<Field> getAllAttributes() {
        if (allAttributes == null) {
            allAttributes = new ArrayList<Field>();
            allAttributes.add(aId);
            allAttributes.add(aVariavelAplicativoId);
            allAttributes.add(aHidrometroEnsaioId);
            allAttributes.add(aEnsaioBancadaId);
            allAttributes.add(aDataHoraRegistro);
            allAttributes.add(aValorLido);
            allAttributes.add(aNumeroIteracao);
            allAttributes.add(aPontoPlanoExecucaoId);
            allAttributes.add(aProcessoAplicativoId);
            allAttributes.add(aValorAjustado);
            allAttributes.add(aResponsavelAjusteId);
            allAttributes.add(aDataHoraAjuste);
        }
        return allAttributes;
    }
    
    /**
     * Retorna o valor da primeira UK da entidade
     * Se ela for composta, retorna a concatenação de toda a combinação
     * de atributos separados por um espaço.
     */
    public String valueOfUk() {
        return "";
    }
    // </editor-fold>
    
    // <editor-fold defaultstate="collapsed" desc="Relationships">
    
    
    private EntUsuarios eResponsavelAjuste;
    
    public EntUsuarios findResponsavelAjuste() throws AdsException {
        if (getResponsavelAjusteId().isNull()) {
            return null;
        }
        if (eResponsavelAjuste == null || !valueOfResponsavelAjusteId().equals(eResponsavelAjuste.valueOfId())) {
            eResponsavelAjuste = new EntUsuarios(ctx);
            eResponsavelAjuste.find(valueOfResponsavelAjusteId());
        }
        return eResponsavelAjuste;
    }
    
    /**
     * Ativa o join desta entidade com USUARIOS
     * através do atributo RESPONSAVEL_AJUSTE_ID
     */
    public EntUsuarios joinResponsavelAjuste() {
        return joinResponsavelAjuste(null);
    }
    public EntUsuarios joinResponsavelAjuste(String alias) {
        EntUsuarios entity = new EntUsuarios(ctx);
        if (alias != null) {
            entity.setAlias(alias);
        }
        Join newJoin = new Join(getResponsavelAjusteId(), entity);
        entity.setJoinedBy(newJoin);
        this.join(newJoin);
        return entity;
    }
    
    public void findByResponsavelAjuste(long id, String sqlAppend) throws AdsException {
        find("select ID from VALOR_VARIAVEL_ENSAIO where RESPONSAVEL_AJUSTE_ID = ? " + sqlAppend);
        sqlSetLong(1,id);
    }
    
    public void findByResponsavelAjuste(long id) throws AdsException {
        findByResponsavelAjuste(id,"");
    }
    
    public void findByResponsavelAjuste(Entity entidade) throws AdsException {
        findByResponsavelAjuste(entidade.valueOfId(),"");
    }
    
    public void findByResponsavelAjuste(Entity entidade, String sqlAppend) throws AdsException {
        findByResponsavelAjuste(entidade.valueOfId(),sqlAppend);
    }
    
    private EntProcessoAplicativo eProcessoAplicativo;
    
    public EntProcessoAplicativo findProcessoAplicativo() throws AdsException {
        if (getProcessoAplicativoId().isNull()) {
            return null;
        }
        if (eProcessoAplicativo == null || !valueOfProcessoAplicativoId().equals(eProcessoAplicativo.valueOfId())) {
            eProcessoAplicativo = new EntProcessoAplicativo(ctx);
            eProcessoAplicativo.find(valueOfProcessoAplicativoId());
        }
        return eProcessoAplicativo;
    }
    
    /**
     * Ativa o join desta entidade com PROCESSO_APLICATIVO
     * através do atributo PROCESSO_APLICATIVO_ID
     */
    public EntProcessoAplicativo joinProcessoAplicativo() {
        return joinProcessoAplicativo(null);
    }
    public EntProcessoAplicativo joinProcessoAplicativo(String alias) {
        EntProcessoAplicativo entity = new EntProcessoAplicativo(ctx);
        if (alias != null) {
            entity.setAlias(alias);
        }
        Join newJoin = new Join(getProcessoAplicativoId(), entity);
        entity.setJoinedBy(newJoin);
        this.join(newJoin);
        return entity;
    }
    
    public void findByProcessoAplicativo(long id, String sqlAppend) throws AdsException {
        find("select ID from VALOR_VARIAVEL_ENSAIO where PROCESSO_APLICATIVO_ID = ? " + sqlAppend);
        sqlSetLong(1,id);
    }
    
    public void findByProcessoAplicativo(long id) throws AdsException {
        findByProcessoAplicativo(id,"");
    }
    
    public void findByProcessoAplicativo(Entity entidade) throws AdsException {
        findByProcessoAplicativo(entidade.valueOfId(),"");
    }
    
    public void findByProcessoAplicativo(Entity entidade, String sqlAppend) throws AdsException {
        findByProcessoAplicativo(entidade.valueOfId(),sqlAppend);
    }
    
    private EntPontoPlanoExecucao ePontoPlanoExecucao;
    
    public EntPontoPlanoExecucao findPontoPlanoExecucao() throws AdsException {
        if (getPontoPlanoExecucaoId().isNull()) {
            return null;
        }
        if (ePontoPlanoExecucao == null || !valueOfPontoPlanoExecucaoId().equals(ePontoPlanoExecucao.valueOfId())) {
            ePontoPlanoExecucao = new EntPontoPlanoExecucao(ctx);
            ePontoPlanoExecucao.find(valueOfPontoPlanoExecucaoId());
        }
        return ePontoPlanoExecucao;
    }
    
    /**
     * Ativa o join desta entidade com PONTO_PLANO_EXECUCAO
     * através do atributo PONTO_PLANO_EXECUCAO_ID
     */
    public EntPontoPlanoExecucao joinPontoPlanoExecucao() {
        return joinPontoPlanoExecucao(null);
    }
    public EntPontoPlanoExecucao joinPontoPlanoExecucao(String alias) {
        EntPontoPlanoExecucao entity = new EntPontoPlanoExecucao(ctx);
        if (alias != null) {
            entity.setAlias(alias);
        }
        Join newJoin = new Join(getPontoPlanoExecucaoId(), entity);
        entity.setJoinedBy(newJoin);
        this.join(newJoin);
        return entity;
    }
    
    public void findByPontoPlanoExecucao(long id, String sqlAppend) throws AdsException {
        find("select ID from VALOR_VARIAVEL_ENSAIO where PONTO_PLANO_EXECUCAO_ID = ? " + sqlAppend);
        sqlSetLong(1,id);
    }
    
    public void findByPontoPlanoExecucao(long id) throws AdsException {
        findByPontoPlanoExecucao(id,"");
    }
    
    public void findByPontoPlanoExecucao(Entity entidade) throws AdsException {
        findByPontoPlanoExecucao(entidade.valueOfId(),"");
    }
    
    public void findByPontoPlanoExecucao(Entity entidade, String sqlAppend) throws AdsException {
        findByPontoPlanoExecucao(entidade.valueOfId(),sqlAppend);
    }
    
    private EntEnsaioBancada eEnsaioBancada;
    
    public EntEnsaioBancada findEnsaioBancada() throws AdsException {
        if (getEnsaioBancadaId().isNull()) {
            return null;
        }
        if (eEnsaioBancada == null || !valueOfEnsaioBancadaId().equals(eEnsaioBancada.valueOfId())) {
            eEnsaioBancada = new EntEnsaioBancada(ctx);
            eEnsaioBancada.find(valueOfEnsaioBancadaId());
        }
        return eEnsaioBancada;
    }
    
    /**
     * Ativa o join desta entidade com ENSAIO_BANCADA
     * através do atributo ENSAIO_BANCADA_ID
     */
    public EntEnsaioBancada joinEnsaioBancada() {
        return joinEnsaioBancada(null);
    }
    public EntEnsaioBancada joinEnsaioBancada(String alias) {
        EntEnsaioBancada entity = new EntEnsaioBancada(ctx);
        if (alias != null) {
            entity.setAlias(alias);
        }
        Join newJoin = new Join(getEnsaioBancadaId(), entity);
        entity.setJoinedBy(newJoin);
        this.join(newJoin);
        return entity;
    }
    
    public void findByEnsaioBancada(long id, String sqlAppend) throws AdsException {
        find("select ID from VALOR_VARIAVEL_ENSAIO where ENSAIO_BANCADA_ID = ? " + sqlAppend);
        sqlSetLong(1,id);
    }
    
    public void findByEnsaioBancada(long id) throws AdsException {
        findByEnsaioBancada(id,"");
    }
    
    public void findByEnsaioBancada(Entity entidade) throws AdsException {
        findByEnsaioBancada(entidade.valueOfId(),"");
    }
    
    public void findByEnsaioBancada(Entity entidade, String sqlAppend) throws AdsException {
        findByEnsaioBancada(entidade.valueOfId(),sqlAppend);
    }
    
    private EntHidrometroEnsaio eHidrometroEnsaio;
    
    public EntHidrometroEnsaio findHidrometroEnsaio() throws AdsException {
        if (getHidrometroEnsaioId().isNull()) {
            return null;
        }
        if (eHidrometroEnsaio == null || !valueOfHidrometroEnsaioId().equals(eHidrometroEnsaio.valueOfId())) {
            eHidrometroEnsaio = new EntHidrometroEnsaio(ctx);
            eHidrometroEnsaio.find(valueOfHidrometroEnsaioId());
        }
        return eHidrometroEnsaio;
    }
    
    /**
     * Ativa o join desta entidade com HIDROMETRO_ENSAIO
     * através do atributo HIDROMETRO_ENSAIO_ID
     */
    public EntHidrometroEnsaio joinHidrometroEnsaio() {
        return joinHidrometroEnsaio(null);
    }
    public EntHidrometroEnsaio joinHidrometroEnsaio(String alias) {
        EntHidrometroEnsaio entity = new EntHidrometroEnsaio(ctx);
        if (alias != null) {
            entity.setAlias(alias);
        }
        Join newJoin = new Join(getHidrometroEnsaioId(), entity);
        entity.setJoinedBy(newJoin);
        this.join(newJoin);
        return entity;
    }
    
    public void findByHidrometroEnsaio(long id, String sqlAppend) throws AdsException {
        find("select ID from VALOR_VARIAVEL_ENSAIO where HIDROMETRO_ENSAIO_ID = ? " + sqlAppend);
        sqlSetLong(1,id);
    }
    
    public void findByHidrometroEnsaio(long id) throws AdsException {
        findByHidrometroEnsaio(id,"");
    }
    
    public void findByHidrometroEnsaio(Entity entidade) throws AdsException {
        findByHidrometroEnsaio(entidade.valueOfId(),"");
    }
    
    public void findByHidrometroEnsaio(Entity entidade, String sqlAppend) throws AdsException {
        findByHidrometroEnsaio(entidade.valueOfId(),sqlAppend);
    }
    
    private EntVariavelAplicativo eVariavelAplicativo;
    
    public EntVariavelAplicativo findVariavelAplicativo() throws AdsException {
        if (getVariavelAplicativoId().isNull()) {
            return null;
        }
        if (eVariavelAplicativo == null || !valueOfVariavelAplicativoId().equals(eVariavelAplicativo.valueOfId())) {
            eVariavelAplicativo = new EntVariavelAplicativo(ctx);
            eVariavelAplicativo.find(valueOfVariavelAplicativoId());
        }
        return eVariavelAplicativo;
    }
    
    /**
     * Ativa o join desta entidade com VARIAVEL_APLICATIVO
     * através do atributo VARIAVEL_APLICATIVO_ID
     */
    public EntVariavelAplicativo joinVariavelAplicativo() {
        return joinVariavelAplicativo(null);
    }
    public EntVariavelAplicativo joinVariavelAplicativo(String alias) {
        EntVariavelAplicativo entity = new EntVariavelAplicativo(ctx);
        if (alias != null) {
            entity.setAlias(alias);
        }
        Join newJoin = new Join(getVariavelAplicativoId(), entity);
        entity.setJoinedBy(newJoin);
        this.join(newJoin);
        return entity;
    }
    
    public void findByVariavelAplicativo(long id, String sqlAppend) throws AdsException {
        find("select ID from VALOR_VARIAVEL_ENSAIO where VARIAVEL_APLICATIVO_ID = ? " + sqlAppend);
        sqlSetLong(1,id);
    }
    
    public void findByVariavelAplicativo(long id) throws AdsException {
        findByVariavelAplicativo(id,"");
    }
    
    public void findByVariavelAplicativo(Entity entidade) throws AdsException {
        findByVariavelAplicativo(entidade.valueOfId(),"");
    }
    
    public void findByVariavelAplicativo(Entity entidade, String sqlAppend) throws AdsException {
        findByVariavelAplicativo(entidade.valueOfId(),sqlAppend);
    }
    
    /**
     * Limpa os objetos normalizados da entidade
     */
    public void clearRelatedObjects() {
        eResponsavelAjuste = null;
        eProcessoAplicativo = null;
        ePontoPlanoExecucao = null;
        eEnsaioBancada = null;
        eHidrometroEnsaio = null;
        eVariavelAplicativo = null;
    }
    
    /**
     * Método que copia os valores dos atributos
     * para os valores respectivos old 
     */
    public void saveOldAtributes() {
        oDataHoraAjuste.setValue(aDataHoraAjuste);
        oResponsavelAjusteId.setValue(aResponsavelAjusteId);
        oValorAjustado.setValue(aValorAjustado);
        oValorLido.setValue(aValorLido);
        oVariavelAplicativoId.setValue(aVariavelAplicativoId);
        oId.setValue(aId);
        oHidrometroEnsaioId.setValue(aHidrometroEnsaioId);
        oEnsaioBancadaId.setValue(aEnsaioBancadaId);
        oDataHoraRegistro.setValue(aDataHoraRegistro);
        oNumeroIteracao.setValue(aNumeroIteracao);
        oPontoPlanoExecucaoId.setValue(aPontoPlanoExecucaoId);
        oProcessoAplicativoId.setValue(aProcessoAplicativoId);
    }
    
    /**
     * Método que retorna as regras da entidade
     * @return ArrayList com as regras ou null caso não existir nenhuma regra
     */
    public ArrayList getAllRules() {
        ArrayList<EntityRule> out = new ArrayList<EntityRule>();
        {
            PrimaryKeyRule rule = new PrimaryKeyRule();
            rule.setEntity(EntValorVariavelEnsaio.class);
            rule.setName("PK_VAVAEN");
            rule.setPkAttribute(new DomId("ID",""));
            out.add(rule);
        }
        {
            ForeignKeyRule rule = new ForeignKeyRule();
            rule.setEntity(EntValorVariavelEnsaio.class);
            rule.setAssociatedEntity(EntEnsaioBancada.class);
            rule.setName("FK_VAVAEN_ENSAIO_BANCADA");
            rule.addAttribute(new DomId("ENSAIO_BANCADA_ID",""));
            out.add(rule);
        }
        {
            ForeignKeyRule rule = new ForeignKeyRule();
            rule.setEntity(EntValorVariavelEnsaio.class);
            rule.setAssociatedEntity(EntHidrometroEnsaio.class);
            rule.setName("FK_VAVAEN_HIDROMETRO_ENSAIO");
            rule.addAttribute(new DomId("HIDROMETRO_ENSAIO_ID",""));
            out.add(rule);
        }
        {
            ForeignKeyRule rule = new ForeignKeyRule();
            rule.setEntity(EntValorVariavelEnsaio.class);
            rule.setAssociatedEntity(EntPontoPlanoExecucao.class);
            rule.setName("FK_VAVAEN_PONTO_PLANO_EXECUCAO");
            rule.addAttribute(new DomId("PONTO_PLANO_EXECUCAO_ID",""));
            out.add(rule);
        }
        {
            ForeignKeyRule rule = new ForeignKeyRule();
            rule.setEntity(EntValorVariavelEnsaio.class);
            rule.setAssociatedEntity(EntProcessoAplicativo.class);
            rule.setName("FK_VAVAEN_PROCESSO_APLICATIVO");
            rule.addAttribute(new DomId("PROCESSO_APLICATIVO_ID",""));
            out.add(rule);
        }
        {
            ForeignKeyRule rule = new ForeignKeyRule();
            rule.setEntity(EntValorVariavelEnsaio.class);
            rule.setAssociatedEntity(EntUsuarios.class);
            rule.setName("FK_VAVAEN_RESPONSAVEL_AJUSTE");
            rule.addAttribute(new DomId("RESPONSAVEL_AJUSTE_ID",""));
            out.add(rule);
        }
        {
            ForeignKeyRule rule = new ForeignKeyRule();
            rule.setEntity(EntValorVariavelEnsaio.class);
            rule.setAssociatedEntity(EntVariavelAplicativo.class);
            rule.setName("FK_VAVAEN_VARIAVEL_APLICATIVO");
            rule.addAttribute(new DomId("VARIAVEL_APLICATIVO_ID",""));
            out.add(rule);
        }
        return out;
    }
    // </editor-fold>
    
    @Override
    protected void preUpdate() throws AdsException {
        complementarDadosValorAjustado(); //Complementar dados quando o valor é ajustado
    }
    
    @Override
    public void fillDefaultValues() throws AdsException {
        if (aId.isNull()) {
            aId.setValue("" + ctx.getNextVal("pk_sequence"));
        }
        if (getDataHoraRegistro().isNull()) {
            setDataHoraRegistro(getDataHoraRegistro().getDefaultValue());
        }
        if (getNumeroIteracao().isNull()) {
            setNumeroIteracao(getNumeroIteracao().getDefaultValue());
        }
    }
    
    // <editor-fold defaultstate="collapsed" desc="Métodos customizados">
    
    /**
     * Regra de ação: Complementar dados quando o valor é ajustado
     */
    private void complementarDadosValorAjustado() throws AdsException {
        // <user-code id="21000593" parentId="21000573" hashcode="14832e42" length="111">
        if (isValorAjustadoModified()) {
            setResponsavelAjusteId("[USER]");
            setDataHoraAjuste("[SYSDATE]");
        }
        // </user-code>
    }
}
